<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>CMake 3.23 Release Notes &mdash; CMake 4.1.1 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a2c47e09" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css?v=4d06bd55" />
    
    <script src="../_static/documentation_options.js?v=e6a937a4"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    
    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="CMake 3.22 Release Notes" href="3.22.html" />
    <link rel="prev" title="CMake 3.24 Release Notes" href="3.24.html" />
 

  </head><body>
    <input id="sidebar-check" type="checkbox" />
    <label id="sidebar-overlay" for="sidebar-check"></label>



    <div class="related relbar1" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="3.22.html" title="CMake 3.22 Release Notes"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="3.24.html" title="CMake 3.24 Release Notes"
             accesskey="P">previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">CMake Release Notes</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">CMake 3.23 Release Notes</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="cmake-3-23-release-notes">
<h1><a class="toc-backref" href="#id4" role="doc-backlink">CMake 3.23 Release Notes</a><a class="headerlink" href="#cmake-3-23-release-notes" title="Link to this heading">¶</a></h1>
<nav class="contents" id="contents">
<p class="topic-title">Contents</p>
<ul class="simple">
<li><p><a class="reference internal" href="#cmake-3-23-release-notes" id="id4">CMake 3.23 Release Notes</a></p>
<ul>
<li><p><a class="reference internal" href="#new-features" id="id5">New Features</a></p>
<ul>
<li><p><a class="reference internal" href="#presets" id="id6">Presets</a></p></li>
<li><p><a class="reference internal" href="#generators" id="id7">Generators</a></p></li>
<li><p><a class="reference internal" href="#command-line" id="id8">Command-Line</a></p></li>
<li><p><a class="reference internal" href="#compilers" id="id9">Compilers</a></p></li>
<li><p><a class="reference internal" href="#file-based-api" id="id10">File-Based API</a></p></li>
<li><p><a class="reference internal" href="#commands" id="id11">Commands</a></p></li>
<li><p><a class="reference internal" href="#variables" id="id12">Variables</a></p></li>
<li><p><a class="reference internal" href="#properties" id="id13">Properties</a></p></li>
<li><p><a class="reference internal" href="#modules" id="id14">Modules</a></p></li>
<li><p><a class="reference internal" href="#ctest" id="id15">CTest</a></p></li>
<li><p><a class="reference internal" href="#cpack" id="id16">CPack</a></p></li>
</ul>
</li>
<li><p><a class="reference internal" href="#deprecated-and-removed-features" id="id17">Deprecated and Removed Features</a></p></li>
<li><p><a class="reference internal" href="#other-changes" id="id18">Other Changes</a></p></li>
<li><p><a class="reference internal" href="#updates" id="id19">Updates</a></p>
<ul>
<li><p><a class="reference internal" href="#id1" id="id20">3.23.1</a></p></li>
<li><p><a class="reference internal" href="#id2" id="id21">3.23.2</a></p></li>
<li><p><a class="reference internal" href="#id3" id="id22">3.23.3, 3.23.4, 3.23.5</a></p></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
<p>Changes made since CMake 3.22 include the following.</p>
<section id="new-features">
<h2><a class="toc-backref" href="#id5" role="doc-backlink">New Features</a><a class="headerlink" href="#new-features" title="Link to this heading">¶</a></h2>
<section id="presets">
<h3><a class="toc-backref" href="#id6" role="doc-backlink">Presets</a><a class="headerlink" href="#presets" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><span class="target" id="index-0-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now support schema version <code class="docutils literal notranslate"><span class="pre">4</span></code>.</p></li>
<li><p><span class="target" id="index-1-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now have an optional <code class="docutils literal notranslate"><span class="pre">include</span></code> field,
which allows the files to include other files.</p></li>
<li><p><span class="target" id="index-2-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> files now support a <code class="docutils literal notranslate"><span class="pre">${fileDir}</span></code> macro, which
contains the directory containing the preset file.</p></li>
<li><p><span class="target" id="index-3-manual:cmake-presets(7)"></span><a class="reference internal" href="../manual/cmake-presets.7.html#manual:cmake-presets(7)" title="cmake-presets(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-presets(7)</span></code></a> gained support for specifying the
<code class="docutils literal notranslate"><span class="pre">resolvePackageReferences</span></code> command line option in a build preset to control
restoration behavior of package references from external package managers.
Currently this is only supported by the Visual Studio generator to support
restoring packages from NuGet. Other generators ignore this option.</p></li>
</ul>
</section>
<section id="generators">
<h3><a class="toc-backref" href="#id7" role="doc-backlink">Generators</a><a class="headerlink" href="#generators" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> for VS 2019 and above learned to
support .NET SDK-style project files (<code class="docutils literal notranslate"><span class="pre">.csproj</span></code>) for C# projects.
See the <span class="target" id="index-0-prop_tgt:DOTNET_SDK"></span><a class="reference internal" href="../prop_tgt/DOTNET_SDK.html#prop_tgt:DOTNET_SDK" title="DOTNET_SDK"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">DOTNET_SDK</span></code></a> target property and corresponding
<span class="target" id="index-0-variable:CMAKE_DOTNET_SDK"></span><a class="reference internal" href="../variable/CMAKE_DOTNET_SDK.html#variable:CMAKE_DOTNET_SDK" title="CMAKE_DOTNET_SDK"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_DOTNET_SDK</span></code></a> variable.  <span class="target" id="index-0-command:add_custom_command"></span><a class="reference internal" href="../command/add_custom_command.html#command:add_custom_command" title="add_custom_command"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">add_custom_command()</span></code></a>
is not yet supported in .NET SDK-style projects.</p></li>
<li><p>The <a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> for VS 2017 and above learned to
use portable instances of Visual Studio not known to the VS installer.
See the <span class="target" id="index-0-variable:CMAKE_GENERATOR_INSTANCE"></span><a class="reference internal" href="../variable/CMAKE_GENERATOR_INSTANCE.html#variable:CMAKE_GENERATOR_INSTANCE" title="CMAKE_GENERATOR_INSTANCE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_GENERATOR_INSTANCE</span></code></a> variable.</p></li>
</ul>
</section>
<section id="command-line">
<h3><a class="toc-backref" href="#id8" role="doc-backlink">Command-Line</a><a class="headerlink" href="#command-line" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-manual:cmake(1)"></span><a class="reference internal" href="../manual/cmake.1.html#manual:cmake(1)" title="cmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake(1)</span></code></a> <a class="reference internal" href="../manual/cmake.1.html#cmdoption-cmake-build"><code class="xref std std-option docutils literal notranslate"><span class="pre">--build</span></code></a> command, when used with
<a class="reference internal" href="../manual/cmake-generators.7.html#visual-studio-generators"><span class="std std-ref">Visual Studio Generators</span></a> on projects that set the
<span class="target" id="index-0-prop_tgt:VS_PACKAGE_REFERENCES"></span><a class="reference internal" href="../prop_tgt/VS_PACKAGE_REFERENCES.html#prop_tgt:VS_PACKAGE_REFERENCES" title="VS_PACKAGE_REFERENCES"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">VS_PACKAGE_REFERENCES</span></code></a> target property, now automatically
restores package references from NuGet.  The cache variable
<span class="target" id="index-0-variable:CMAKE_VS_NUGET_PACKAGE_RESTORE"></span><a class="reference internal" href="../variable/CMAKE_VS_NUGET_PACKAGE_RESTORE.html#variable:CMAKE_VS_NUGET_PACKAGE_RESTORE" title="CMAKE_VS_NUGET_PACKAGE_RESTORE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_VS_NUGET_PACKAGE_RESTORE</span></code></a> may be set to toggle this behavior
in a build tree.  Use the
<a class="reference internal" href="../manual/cmake.1.html#cmdoption-cmake-build-resolve-package-references"><code class="xref std std-option docutils literal notranslate"><span class="pre">--resolve-package-references</span></code></a>
command-line option to control the behavior on one invocation.</p></li>
<li><p>The <span class="target" id="index-1-manual:cmake(1)"></span><a class="reference internal" href="../manual/cmake.1.html#manual:cmake(1)" title="cmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake(1)</span></code></a> command line tool gained a
<a class="reference internal" href="../manual/cmake.1.html#cmdoption-cmake-debug-find-pkg"><code class="xref std std-option docutils literal notranslate"><span class="pre">--debug-find-pkg</span></code></a>
option to enable debug messages under specific <span class="target" id="index-0-command:find_package"></span><a class="reference internal" href="../command/find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package()</span></code></a>
calls.</p></li>
<li><p>The <span class="target" id="index-2-manual:cmake(1)"></span><a class="reference internal" href="../manual/cmake.1.html#manual:cmake(1)" title="cmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake(1)</span></code></a> command line tool gained a
<a class="reference internal" href="../manual/cmake.1.html#cmdoption-cmake-debug-find-var"><code class="xref std std-option docutils literal notranslate"><span class="pre">--debug-find-var</span></code></a>
option to enable debug messages for <code class="docutils literal notranslate"><span class="pre">find_*</span></code> calls that use specific
result variables.</p></li>
</ul>
</section>
<section id="compilers">
<h3><a class="toc-backref" href="#id9" role="doc-backlink">Compilers</a><a class="headerlink" href="#compilers" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The IBM Open XL C/C++ compiler, based on LLVM, is now supported with
compiler id <code class="docutils literal notranslate"><span class="pre">IBMClang</span></code>.</p></li>
<li><p>The MCST LCC compiler is now supported with compiler id <code class="docutils literal notranslate"><span class="pre">LCC</span></code>.
See policy <span class="target" id="index-0-policy:CMP0129"></span><a class="reference internal" href="../policy/CMP0129.html#policy:CMP0129" title="CMP0129"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0129</span></code></a>.</p></li>
</ul>
</section>
<section id="file-based-api">
<h3><a class="toc-backref" href="#id10" role="doc-backlink">File-Based API</a><a class="headerlink" href="#file-based-api" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-manual:cmake-file-api(7)"></span><a class="reference internal" href="../manual/cmake-file-api.7.html#manual:cmake-file-api(7)" title="cmake-file-api(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-file-api(7)</span></code></a> &quot;codemodel&quot; version 2 <code class="docutils literal notranslate"><span class="pre">version</span></code> field
has been updated to <code class="docutils literal notranslate"><span class="pre">2.4</span></code>.</p></li>
<li><p>The <span class="target" id="index-1-manual:cmake-file-api(7)"></span><a class="reference internal" href="../manual/cmake-file-api.7.html#manual:cmake-file-api(7)" title="cmake-file-api(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-file-api(7)</span></code></a> &quot;codemodel&quot; version 2 <code class="docutils literal notranslate"><span class="pre">directory</span></code>
object <code class="docutils literal notranslate"><span class="pre">installers</span></code> field gained a new <code class="docutils literal notranslate"><span class="pre">fileSet</span></code> installer type
and associated <code class="docutils literal notranslate"><span class="pre">fileSetName</span></code>, <code class="docutils literal notranslate"><span class="pre">fileSetType</span></code>, <code class="docutils literal notranslate"><span class="pre">fileSetDirectories</span></code>,
and <code class="docutils literal notranslate"><span class="pre">fileSetTarget</span></code> fields.</p></li>
</ul>
</section>
<section id="commands">
<h3><a class="toc-backref" href="#id11" role="doc-backlink">Commands</a><a class="headerlink" href="#commands" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-command:define_property"></span><a class="reference internal" href="../command/define_property.html#command:define_property" title="define_property"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">define_property()</span></code></a> command gained a new
<code class="docutils literal notranslate"><span class="pre">INITIALIZE_FROM_VARIABLE</span></code> option to cause a target property to be
initialized from a variable when a target is created.</p></li>
<li><p>The <span class="target" id="index-0-command:install"></span><a class="reference internal" href="../command/install.html#targets" title="install(targets)"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">install(TARGETS)</span></code></a> command gained a new <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> argument,
which can be used to install header file sets associated with a target.</p></li>
<li><p>The <span class="target" id="index-0-command:string"></span><a class="reference internal" href="../command/string.html#timestamp" title="string(timestamp)"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">string(TIMESTAMP)</span></code></a> and <span class="target" id="index-0-command:file"></span><a class="reference internal" href="../command/file.html#timestamp" title="file(timestamp)"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">file(TIMESTAMP)</span></code></a> commands now
support the <code class="docutils literal notranslate"><span class="pre">%f</span></code> specifier for microseconds.</p></li>
<li><p>The <span class="target" id="index-0-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> command gained a new <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> mode, which
can be used to add headers as header-only source files of a target.</p></li>
</ul>
</section>
<section id="variables">
<h3><a class="toc-backref" href="#id12" role="doc-backlink">Variables</a><a class="headerlink" href="#variables" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-variable:CMAKE_CUDA_ARCHITECTURES"></span><a class="reference internal" href="../variable/CMAKE_CUDA_ARCHITECTURES.html#variable:CMAKE_CUDA_ARCHITECTURES" title="CMAKE_CUDA_ARCHITECTURES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_CUDA_ARCHITECTURES</span></code></a> variable and associated
<span class="target" id="index-0-prop_tgt:CUDA_ARCHITECTURES"></span><a class="reference internal" href="../prop_tgt/CUDA_ARCHITECTURES.html#prop_tgt:CUDA_ARCHITECTURES" title="CUDA_ARCHITECTURES"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_ARCHITECTURES</span></code></a> target property now support the
<code class="docutils literal notranslate"><span class="pre">all</span></code>, and <code class="docutils literal notranslate"><span class="pre">all-major</span></code> values for CUDA toolkit 7.0+.</p></li>
<li><p>The <span class="target" id="index-0-variable:CMAKE_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_IGNORE_PREFIX_PATH.html#variable:CMAKE_IGNORE_PREFIX_PATH" title="CMAKE_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_IGNORE_PREFIX_PATH</span></code></a> and
<span class="target" id="index-0-variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH"></span><a class="reference internal" href="../variable/CMAKE_SYSTEM_IGNORE_PREFIX_PATH.html#variable:CMAKE_SYSTEM_IGNORE_PREFIX_PATH" title="CMAKE_SYSTEM_IGNORE_PREFIX_PATH"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSTEM_IGNORE_PREFIX_PATH</span></code></a> variables were added
to tell the <span class="target" id="index-1-command:find_package"></span><a class="reference internal" href="../command/find_package.html#command:find_package" title="find_package"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_package()</span></code></a>, <span class="target" id="index-0-command:find_program"></span><a class="reference internal" href="../command/find_program.html#command:find_program" title="find_program"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_program()</span></code></a>,
<span class="target" id="index-0-command:find_library"></span><a class="reference internal" href="../command/find_library.html#command:find_library" title="find_library"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_library()</span></code></a>, <span class="target" id="index-0-command:find_path"></span><a class="reference internal" href="../command/find_path.html#command:find_path" title="find_path"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_path()</span></code></a>, and <span class="target" id="index-0-command:find_file"></span><a class="reference internal" href="../command/find_file.html#command:find_file" title="find_file"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">find_file()</span></code></a>
commands to ignore specified prefixes.</p></li>
<li><p>The <span class="target" id="index-0-variable:CMAKE_LINK_LIBRARIES_ONLY_TARGETS"></span><a class="reference internal" href="../variable/CMAKE_LINK_LIBRARIES_ONLY_TARGETS.html#variable:CMAKE_LINK_LIBRARIES_ONLY_TARGETS" title="CMAKE_LINK_LIBRARIES_ONLY_TARGETS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_LINK_LIBRARIES_ONLY_TARGETS</span></code></a> variable and
corresponding <span class="target" id="index-0-prop_tgt:LINK_LIBRARIES_ONLY_TARGETS"></span><a class="reference internal" href="../prop_tgt/LINK_LIBRARIES_ONLY_TARGETS.html#prop_tgt:LINK_LIBRARIES_ONLY_TARGETS" title="LINK_LIBRARIES_ONLY_TARGETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">LINK_LIBRARIES_ONLY_TARGETS</span></code></a> target
property were added to optionally require that all link items
that can be target names are actually names of existing targets.</p></li>
</ul>
</section>
<section id="properties">
<h3><a class="toc-backref" href="#id13" role="doc-backlink">Properties</a><a class="headerlink" href="#properties" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/HEADER_SETS.html#prop_tgt:HEADER_SETS" title="HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SETS</span></code></a> and <span class="target" id="index-0-prop_tgt:INTERFACE_HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/INTERFACE_HEADER_SETS.html#prop_tgt:INTERFACE_HEADER_SETS" title="INTERFACE_HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">INTERFACE_HEADER_SETS</span></code></a> read-only
target properties were added to list header sets associated with a target.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_SET"></span><a class="reference internal" href="../prop_tgt/HEADER_SET.html#prop_tgt:HEADER_SET" title="HEADER_SET"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SET</span></code></a> and <span class="target" id="index-0-prop_tgt:HEADER_SET_&lt;NAME&gt;"></span><a class="reference internal" href="../prop_tgt/HEADER_SET_NAME.html#prop_tgt:HEADER_SET_&lt;NAME&gt;" title="HEADER_SET_&lt;NAME&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SET_&lt;NAME&gt;</span></code></a> target
properties were added to list files in the default header set
and named header sets, respectively.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:HEADER_DIRS"></span><a class="reference internal" href="../prop_tgt/HEADER_DIRS.html#prop_tgt:HEADER_DIRS" title="HEADER_DIRS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_DIRS</span></code></a> and <span class="target" id="index-0-prop_tgt:HEADER_DIRS_&lt;NAME&gt;"></span><a class="reference internal" href="../prop_tgt/HEADER_DIRS_NAME.html#prop_tgt:HEADER_DIRS_&lt;NAME&gt;" title="HEADER_DIRS_&lt;NAME&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_DIRS_&lt;NAME&gt;</span></code></a> target
properties were added to specify the base directories of the default
header set and named header sets, respectively.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:IMPORTED_NO_SYSTEM"></span><a class="reference internal" href="../prop_tgt/IMPORTED_NO_SYSTEM.html#prop_tgt:IMPORTED_NO_SYSTEM" title="IMPORTED_NO_SYSTEM"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">IMPORTED_NO_SYSTEM</span></code></a> target property was added to
specify that an <a class="reference internal" href="../manual/cmake-buildsystem.7.html#imported-targets"><span class="std std-ref">Imported Target</span></a> should
not be treated as a system library (i.e. its include directories
are not automatically <code class="docutils literal notranslate"><span class="pre">SYSTEM</span></code>).</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:XCODE_EMBED_&lt;type&gt;"></span><a class="reference internal" href="../prop_tgt/XCODE_EMBED_type.html#prop_tgt:XCODE_EMBED_&lt;type&gt;" title="XCODE_EMBED_&lt;type&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">XCODE_EMBED_PLUGINS</span></code></a> target property
was added to tell the <span class="target" id="index-0-generator:Xcode"></span><a class="reference internal" href="../generator/Xcode.html#generator:Xcode" title="Xcode"><code class="xref cmake cmake-generator docutils literal notranslate"><span class="pre">Xcode</span></code></a> generator what targets to put in
the <code class="docutils literal notranslate"><span class="pre">Embed</span> <span class="pre">PlugIns</span></code> build phase.</p></li>
<li><p>The <span class="target" id="index-0-prop_tgt:XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"></span><a class="reference internal" href="../prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.html#prop_tgt:XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" title="XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</span></code></a> target property
and supporting <span class="target" id="index-0-variable:CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"></span><a class="reference internal" href="../variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.html#variable:CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE" title="CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE</span></code></a>
variable were added to tell the <span class="target" id="index-1-generator:Xcode"></span><a class="reference internal" href="../generator/Xcode.html#generator:Xcode" title="Xcode"><code class="xref cmake cmake-generator docutils literal notranslate"><span class="pre">Xcode</span></code></a> generator to enable
specifying the Xcode scheme option property <code class="docutils literal notranslate"><span class="pre">GPU</span> <span class="pre">Frame</span> <span class="pre">Capture</span></code>.</p></li>
</ul>
</section>
<section id="modules">
<h3><a class="toc-backref" href="#id14" role="doc-backlink">Modules</a><a class="headerlink" href="#modules" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-module:CheckPIESupported"></span><a class="reference internal" href="../module/CheckPIESupported.html#module:CheckPIESupported" title="CheckPIESupported"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">CheckPIESupported</span></code></a> module now supports the <code class="docutils literal notranslate"><span class="pre">OBJC</span></code>,
<code class="docutils literal notranslate"><span class="pre">OBJCXX</span></code>, <code class="docutils literal notranslate"><span class="pre">CUDA</span></code>, and <code class="docutils literal notranslate"><span class="pre">HIP</span></code> languages.  It also now honors
<span class="target" id="index-0-variable:CMAKE_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_SYSROOT.html#variable:CMAKE_SYSROOT" title="CMAKE_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SYSROOT</span></code></a> and <span class="target" id="index-0-variable:CMAKE_OSX_SYSROOT"></span><a class="reference internal" href="../variable/CMAKE_OSX_SYSROOT.html#variable:CMAKE_OSX_SYSROOT" title="CMAKE_OSX_SYSROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_OSX_SYSROOT</span></code></a>.</p></li>
<li><p>The <span class="target" id="index-0-module:ExternalProject"></span><a class="reference internal" href="../module/ExternalProject.html#module:ExternalProject" title="ExternalProject"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">ExternalProject</span></code></a> module's <span class="target" id="index-0-command:externalproject_add"></span><a class="reference internal" href="../module/ExternalProject.html#command:externalproject_add" title="externalproject_add"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">ExternalProject_Add()</span></code></a>
command gained support for a <code class="docutils literal notranslate"><span class="pre">USES_TERMINAL_PATCH</span></code> option to give
the patch step exclusive terminal access.</p></li>
<li><p>The <span class="target" id="index-0-module:FindCUDAToolkit"></span><a class="reference internal" href="../module/FindCUDAToolkit.html#module:FindCUDAToolkit" title="FindCUDAToolkit"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindCUDAToolkit</span></code></a> module now provides a target for
<code class="docutils literal notranslate"><span class="pre">libcufft_static_nocallback</span></code>, if found.</p></li>
<li><p>The <span class="target" id="index-0-module:FindGLUT"></span><a class="reference internal" href="../module/FindGLUT.html#module:FindGLUT" title="FindGLUT"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindGLUT</span></code></a> module now provides the <code class="docutils literal notranslate"><span class="pre">GLUT_INCLUDE_DIRS</span></code>
result variable to conform with naming conventions documented in the
<span class="target" id="index-0-manual:cmake-developer(7)"></span><a class="reference internal" href="../manual/cmake-developer.7.html#manual:cmake-developer(7)" title="cmake-developer(7)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake-developer(7)</span></code></a> manual.  This supersedes the legacy
<code class="docutils literal notranslate"><span class="pre">GLUT_INCLUDE_DIR</span></code> variable.</p></li>
<li><p>The <span class="target" id="index-0-module:FindGTest"></span><a class="reference internal" href="../module/FindGTest.html#module:FindGTest" title="FindGTest"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindGTest</span></code></a> module now provides a target for GMock, if found.</p></li>
<li><p>The <span class="target" id="index-0-module:FindVulkan"></span><a class="reference internal" href="../module/FindVulkan.html#module:FindVulkan" title="FindVulkan"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">FindVulkan</span></code></a> module now provides a <code class="docutils literal notranslate"><span class="pre">Vulkan_VERSION</span></code> result
variable reporting the version number.</p></li>
</ul>
</section>
<section id="ctest">
<h3><a class="toc-backref" href="#id15" role="doc-backlink">CTest</a><a class="headerlink" href="#ctest" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><span class="target" id="index-0-manual:ctest(1)"></span><a class="reference internal" href="../manual/ctest.1.html#manual:ctest(1)" title="ctest(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">ctest(1)</span></code></a> gained a new <span class="target" id="index-0-variable:CTEST_SUBMIT_INACTIVITY_TIMEOUT"></span><a class="reference internal" href="../variable/CTEST_SUBMIT_INACTIVITY_TIMEOUT.html#variable:CTEST_SUBMIT_INACTIVITY_TIMEOUT" title="CTEST_SUBMIT_INACTIVITY_TIMEOUT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CTEST_SUBMIT_INACTIVITY_TIMEOUT</span></code></a>
variable, which can be used to specify a timeout for submission inactivity.</p></li>
</ul>
</section>
<section id="cpack">
<h3><a class="toc-backref" href="#id16" role="doc-backlink">CPack</a><a class="headerlink" href="#cpack" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-0-cpack_gen:CPack productbuild Generator"></span><a class="reference internal" href="../cpack_gen/productbuild.html#cpack_gen:CPack productbuild Generator" title="CPack productbuild Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">productbuild</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS" title="CPACK_PRODUCTBUILD_DOMAINS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS</span></code></a>,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE" title="CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_ANYWHERE</span></code></a>,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_USER"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_USER" title="CPACK_PRODUCTBUILD_DOMAINS_USER"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_USER</span></code></a>, and
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_DOMAINS_ROOT"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_DOMAINS_ROOT" title="CPACK_PRODUCTBUILD_DOMAINS_ROOT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_DOMAINS_ROOT</span></code></a> variables for
adding the domains element to the Distribution XML. With these variables,
it is now possible to install products to the user's home directory
without requiring administrative privileges.</p></li>
<li><p>The <span class="target" id="index-1-cpack_gen:CPack productbuild Generator"></span><a class="reference internal" href="../cpack_gen/productbuild.html#cpack_gen:CPack productbuild Generator" title="CPack productbuild Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">productbuild</span> <span class="pre">Generator</span></code></a> gained a new variable,
<span class="target" id="index-0-variable:CPACK_PRODUCTBUILD_IDENTIFIER"></span><a class="reference internal" href="../cpack_gen/productbuild.html#variable:CPACK_PRODUCTBUILD_IDENTIFIER" title="CPACK_PRODUCTBUILD_IDENTIFIER"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_PRODUCTBUILD_IDENTIFIER</span></code></a>, used to customize the unique
product identifier associated with the product.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">CPack.distribution.dist.in</span></code> template used by the
<span class="target" id="index-2-cpack_gen:CPack productbuild Generator"></span><a class="reference internal" href="../cpack_gen/productbuild.html#cpack_gen:CPack productbuild Generator" title="CPack productbuild Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">productbuild</span> <span class="pre">Generator</span></code></a> and
CPack <code class="docutils literal notranslate"><span class="pre">PackageMaker</span></code> generator was updated to use a new
<code class="docutils literal notranslate"><span class="pre">CPACK_APPLE_PKG_INSTALLER_CONTENT</span></code> variable for its main content.
This replaced the previously undocumented and now deprecated
<code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> variable.</p></li>
<li><p>The <span class="target" id="index-0-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_ARCHIVE_FORMAT"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_ARCHIVE_FORMAT" title="CPACK_IFW_ARCHIVE_FORMAT"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_ARCHIVE_FORMAT</span></code></a> and
<span class="target" id="index-0-variable:CPACK_IFW_ARCHIVE_COMPRESSION"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_ARCHIVE_COMPRESSION" title="CPACK_IFW_ARCHIVE_COMPRESSION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_ARCHIVE_COMPRESSION</span></code></a> variables for setting the
format used when packaging new component data archives, and choosing
the compression level used.
These features are available for QtIFW 4.2 and newer.</p></li>
<li><p>The <span class="target" id="index-1-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE" title="CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_DISABLE_COMMAND_LINE_INTERFACE</span></code></a> variable to
prevent the user from passing any consumer command to the installer, like
<code class="docutils literal notranslate"><span class="pre">install</span></code>, <code class="docutils literal notranslate"><span class="pre">update</span></code>, and <code class="docutils literal notranslate"><span class="pre">remove</span></code>.
This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-2-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_PRODUCT_IMAGES"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_PRODUCT_IMAGES" title="CPACK_IFW_PACKAGE_PRODUCT_IMAGES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_PRODUCT_IMAGES</span></code></a> variable for adding a
list of images to be shown on the <code class="docutils literal notranslate"><span class="pre">PerformInstallationPage</span></code>.
This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-3-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM" title="CPACK_IFW_PACKAGE_RUN_PROGRAM"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM</span></code></a>,
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS" title="CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM_ARGUMENTS</span></code></a>, and
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION" title="CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_RUN_PROGRAM_DESCRIPTION</span></code></a> variables for
executing a command after the installer is done if the user accepts
the action.  This feature is available for QtIFW 4.0 and newer.</p></li>
<li><p>The <span class="target" id="index-4-cpack_gen:CPack IFW Generator"></span><a class="reference internal" href="../cpack_gen/ifw.html#cpack_gen:CPack IFW Generator" title="CPack IFW Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">IFW</span> <span class="pre">Generator</span></code></a> gained the new
<span class="target" id="index-0-variable:CPACK_IFW_PACKAGE_SIGNING_IDENTITY"></span><a class="reference internal" href="../cpack_gen/ifw.html#variable:CPACK_IFW_PACKAGE_SIGNING_IDENTITY" title="CPACK_IFW_PACKAGE_SIGNING_IDENTITY"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_IFW_PACKAGE_SIGNING_IDENTITY</span></code></a> variable for specifying a
code signing identity to be used for signing the generated app bundle.
This feature is available on macOS only, and for QtIFW 3.0 and newer.</p></li>
<li><p>The <span class="target" id="index-0-cpack_gen:CPack WIX Generator"></span><a class="reference internal" href="../cpack_gen/wix.html#cpack_gen:CPack WIX Generator" title="CPack WIX Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">WIX</span> <span class="pre">Generator</span></code></a> gained a new variable,
<span class="target" id="index-0-variable:CPACK_WIX_SKIP_WIX_UI_EXTENSION"></span><a class="reference internal" href="../cpack_gen/wix.html#variable:CPACK_WIX_SKIP_WIX_UI_EXTENSION" title="CPACK_WIX_SKIP_WIX_UI_EXTENSION"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_WIX_SKIP_WIX_UI_EXTENSION</span></code></a>, to skip the inclusion
of WixUIExtensions.</p></li>
</ul>
</section>
</section>
<section id="deprecated-and-removed-features">
<h2><a class="toc-backref" href="#id17" role="doc-backlink">Deprecated and Removed Features</a><a class="headerlink" href="#deprecated-and-removed-features" title="Link to this heading">¶</a></h2>
<ul class="simple">
<li><p><span class="target" id="index-3-manual:cmake(1)"></span><a class="reference internal" href="../manual/cmake.1.html#manual:cmake(1)" title="cmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cmake(1)</span></code></a> now warns when multiple source paths are specified,
as in <code class="docutils literal notranslate"><span class="pre">cmake</span> <span class="pre">-S</span> <span class="pre">src1</span> <span class="pre">src2</span></code>.  This has never been officially documented
or supported, but older versions accidentally accepted multiple source
paths and used the last path specified.  Update scripts to avoid
passing multiple source path arguments.</p></li>
<li><p>The <span class="target" id="index-0-manual:cpack(1)"></span><a class="reference internal" href="../manual/cpack.1.html#manual:cpack(1)" title="cpack(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">cpack(1)</span></code></a> undocumented <code class="docutils literal notranslate"><span class="pre">OSXX11</span></code> generator has been removed.</p></li>
<li><p>The previously undocumented <code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> variable used in
the <code class="docutils literal notranslate"><span class="pre">CPack.distribution.dist.in</span></code> template has been replaced by a new
<code class="docutils literal notranslate"><span class="pre">CPACK_APPLE_PKG_INSTALLER_CONTENT</span></code> variable. This only affects projects
that were providing their own custom <code class="docutils literal notranslate"><span class="pre">CPack.distribution.dist.in</span></code> template
file, but still relied on <code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> being set. Those
custom template files should be updated to use
<code class="docutils literal notranslate"><span class="pre">CPACK_APPLE_PKG_INSTALLER_CONTENT</span></code> instead, or to fully define all the
template file's contents without relying on substitution of either variable.</p></li>
</ul>
</section>
<section id="other-changes">
<h2><a class="toc-backref" href="#id18" role="doc-backlink">Other Changes</a><a class="headerlink" href="#other-changes" title="Link to this heading">¶</a></h2>
<ul class="simple">
<li><p>The <span class="target" id="index-0-cpack_gen:CPack DragNDrop Generator"></span><a class="reference internal" href="../cpack_gen/dmg.html#cpack_gen:CPack DragNDrop Generator" title="CPack DragNDrop Generator"><code class="xref cmake cmake-cpack_gen docutils literal notranslate"><span class="pre">CPack</span> <span class="pre">DragNDrop</span> <span class="pre">Generator</span></code></a> no longer attaches
<span class="target" id="index-0-variable:CPACK_RESOURCE_FILE_LICENSE"></span><a class="reference internal" href="../module/CPack.html#variable:CPACK_RESOURCE_FILE_LICENSE" title="CPACK_RESOURCE_FILE_LICENSE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_RESOURCE_FILE_LICENSE</span></code></a> as the license agreement in
the generated <code class="docutils literal notranslate"><span class="pre">.dmg</span></code> unless explicitly activated by a
<span class="target" id="index-0-variable:CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE"></span><a class="reference internal" href="../cpack_gen/dmg.html#variable:CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE" title="CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE</span></code></a> option.
In CMake projects, the <span class="target" id="index-0-module:CPack"></span><a class="reference internal" href="../module/CPack.html#module:CPack" title="CPack"><code class="xref cmake cmake-module docutils literal notranslate"><span class="pre">CPack</span></code></a> module enables the option
by default for compatibility.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> targets may now enable both <span class="target" id="index-0-prop_tgt:CUDA_SEPARABLE_COMPILATION"></span><a class="reference internal" href="../prop_tgt/CUDA_SEPARABLE_COMPILATION.html#prop_tgt:CUDA_SEPARABLE_COMPILATION" title="CUDA_SEPARABLE_COMPILATION"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_SEPARABLE_COMPILATION</span></code></a>
and <span class="target" id="index-0-prop_tgt:CUDA_PTX_COMPILATION"></span><a class="reference internal" href="../prop_tgt/CUDA_PTX_COMPILATION.html#prop_tgt:CUDA_PTX_COMPILATION" title="CUDA_PTX_COMPILATION"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">CUDA_PTX_COMPILATION</span></code></a>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> compiler detection now:</p>
<ul>
<li><p>issues an error in all cases when it's unable to compute the default
architecture(s) if required (see <span class="target" id="index-0-policy:CMP0104"></span><a class="reference internal" href="../policy/CMP0104.html#policy:CMP0104" title="CMP0104"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0104</span></code></a>),</p></li>
<li><p>handles <code class="docutils literal notranslate"><span class="pre">OFF</span></code> for <span class="target" id="index-1-variable:CMAKE_CUDA_ARCHITECTURES"></span><a class="reference internal" href="../variable/CMAKE_CUDA_ARCHITECTURES.html#variable:CMAKE_CUDA_ARCHITECTURES" title="CMAKE_CUDA_ARCHITECTURES"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_CUDA_ARCHITECTURES</span></code></a> on Clang,</p></li>
<li><p>supports the theoretical case of multiple default architectures, and</p></li>
<li><p>tries to detect invalid architectures and issue an error.</p></li>
</ul>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">CUDA</span></code> with Clang now implements policy <span class="target" id="index-0-policy:CMP0105"></span><a class="reference internal" href="../policy/CMP0105.html#policy:CMP0105" title="CMP0105"><code class="xref cmake cmake-policy docutils literal notranslate"><span class="pre">CMP0105</span></code></a> and
the <span class="target" id="index-0-genex:DEVICE_LINK"></span><a class="reference internal" href="../manual/cmake-generator-expressions.7.html#genex:DEVICE_LINK" title="DEVICE_LINK"><code class="xref cmake cmake-genex docutils literal notranslate"><span class="pre">$&lt;DEVICE_LINK:...&gt;</span></code></a> and <span class="target" id="index-0-genex:HOST_LINK"></span><a class="reference internal" href="../manual/cmake-generator-expressions.7.html#genex:HOST_LINK" title="HOST_LINK"><code class="xref cmake cmake-genex docutils literal notranslate"><span class="pre">$&lt;HOST_LINK:...&gt;</span></code></a>
generator expressions.</p></li>
<li><p>The <span class="target" id="index-1-command:define_property"></span><a class="reference internal" href="../command/define_property.html#command:define_property" title="define_property"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">define_property()</span></code></a> command's <code class="docutils literal notranslate"><span class="pre">BRIEF_DOCS</span></code> and <code class="docutils literal notranslate"><span class="pre">FULL_DOCS</span></code>
arguments are now optional.</p></li>
<li><p><span class="target" id="index-0-manual:ccmake(1)"></span><a class="reference internal" href="../manual/ccmake.1.html#manual:ccmake(1)" title="ccmake(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">ccmake(1)</span></code></a> may now be enabled on Windows when building
CMake from source.  This is experimental, and so is not included
in official distributions.</p></li>
</ul>
</section>
<section id="updates">
<h2><a class="toc-backref" href="#id19" role="doc-backlink">Updates</a><a class="headerlink" href="#updates" title="Link to this heading">¶</a></h2>
<p>Changes made since CMake 3.23.0 include the following.</p>
<section id="id1">
<h3><a class="toc-backref" href="#id20" role="doc-backlink">3.23.1</a><a class="headerlink" href="#id1" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <span class="target" id="index-1-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> feature added in CMake 3.23.0
does not yet place header files properly in Apple <span class="target" id="index-0-prop_tgt:FRAMEWORK"></span><a class="reference internal" href="../prop_tgt/FRAMEWORK.html#prop_tgt:FRAMEWORK" title="FRAMEWORK"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">FRAMEWORK</span></code></a>
targets.  Pending further work in a future version of CMake, it is now
an error to add a <code class="docutils literal notranslate"><span class="pre">FILE_SET</span></code> of type <code class="docutils literal notranslate"><span class="pre">HEADERS</span></code> to such targets on
Apple platforms.</p></li>
<li><p>The <span class="target" id="index-1-prop_tgt:HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/HEADER_SETS.html#prop_tgt:HEADER_SETS" title="HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">HEADER_SETS</span></code></a> and <span class="target" id="index-1-prop_tgt:INTERFACE_HEADER_SETS"></span><a class="reference internal" href="../prop_tgt/INTERFACE_HEADER_SETS.html#prop_tgt:INTERFACE_HEADER_SETS" title="INTERFACE_HEADER_SETS"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">INTERFACE_HEADER_SETS</span></code></a> target
properties added in CMake 3.23.0 are now read-only records of the header
sets created by the <span class="target" id="index-2-command:target_sources"></span><a class="reference internal" href="../command/target_sources.html#command:target_sources" title="target_sources"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_sources()</span></code></a> command.</p></li>
</ul>
</section>
<section id="id2">
<h3><a class="toc-backref" href="#id21" role="doc-backlink">3.23.2</a><a class="headerlink" href="#id2" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>The <code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> variable used in the
<code class="docutils literal notranslate"><span class="pre">CPack.distribution.dist.in</span></code> template file was replaced by a new
<code class="docutils literal notranslate"><span class="pre">CPACK_APPLE_PKG_INSTALLER_CONTENT</span></code> variable in CMake 3.23.0.
This broke projects that provided their own template file but still
expected the <code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> variable to be defined.
The old <code class="docutils literal notranslate"><span class="pre">CPACK_PACKAGEMAKER_CHOICES</span></code> variable is now also set to the
same content as it was before, but it is formally deprecated.</p></li>
</ul>
</section>
<section id="id3">
<h3><a class="toc-backref" href="#id22" role="doc-backlink">3.23.3, 3.23.4, 3.23.5</a><a class="headerlink" href="#id3" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>These versions made no changes to documented features or interfaces.
Some implementation updates were made to support ecosystem changes
and/or fix regressions.</p></li>
</ul>
</section>
</section>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3>Table of Contents</h3>
    <ul>
<li><a class="reference internal" href="#">CMake 3.23 Release Notes</a><ul>
<li><a class="reference internal" href="#new-features">New Features</a><ul>
<li><a class="reference internal" href="#presets">Presets</a></li>
<li><a class="reference internal" href="#generators">Generators</a></li>
<li><a class="reference internal" href="#command-line">Command-Line</a></li>
<li><a class="reference internal" href="#compilers">Compilers</a></li>
<li><a class="reference internal" href="#file-based-api">File-Based API</a></li>
<li><a class="reference internal" href="#commands">Commands</a></li>
<li><a class="reference internal" href="#variables">Variables</a></li>
<li><a class="reference internal" href="#properties">Properties</a></li>
<li><a class="reference internal" href="#modules">Modules</a></li>
<li><a class="reference internal" href="#ctest">CTest</a></li>
<li><a class="reference internal" href="#cpack">CPack</a></li>
</ul>
</li>
<li><a class="reference internal" href="#deprecated-and-removed-features">Deprecated and Removed Features</a></li>
<li><a class="reference internal" href="#other-changes">Other Changes</a></li>
<li><a class="reference internal" href="#updates">Updates</a><ul>
<li><a class="reference internal" href="#id1">3.23.1</a></li>
<li><a class="reference internal" href="#id2">3.23.2</a></li>
<li><a class="reference internal" href="#id3">3.23.3, 3.23.4, 3.23.5</a></li>
</ul>
</li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="3.24.html"
                          title="previous chapter">CMake 3.24 Release Notes</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="3.22.html"
                          title="next chapter">CMake 3.22 Release Notes</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/release/3.23.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="3.22.html" title="CMake 3.22 Release Notes"
             >next</a> |</li>
        <li class="right" >
          <a href="3.24.html" title="CMake 3.24 Release Notes"
             >previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="index.html" >CMake Release Notes</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">CMake 3.23 Release Notes</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
    &#169; Copyright 2000-2025 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
    </div>
<script type="text/javascript">
(function() {
  "use strict";
  const hide = () => document.getElementById("sidebar-check").checked = false;
  addEventListener("keydown", e => (e.key === "Escape") && hide());
  addEventListener("click", e => (e.target.tagName === "A") && hide());
  addEventListener("hashchange", hide)
})();
</script>
  </body>
</html>